package moj_pakiet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;


public class Pracownik {
	private int idPracownika;
	private String imiePracownika;
	private String nazwiskoPracownika;
	private String pesel;
	private Date dataZatrudnienia;
	private int stanowisko;
	private String haslo;
	
	Pracownik(){}
	
	Pracownik(int idPracownika ,String imiePracownika ,	String nazwiskoPracownika, 	String pesel ,	Date dataZatrudnienia ,
	int stanowisko ,String haslo ){
		
		this.idPracownika =idPracownika;
		this.imiePracownika =imiePracownika;
		this.nazwiskoPracownika =nazwiskoPracownika;
		this.pesel =pesel;
		this.dataZatrudnienia =dataZatrudnienia;
		this.stanowisko =stanowisko;
		this.haslo =haslo;
		
	}
	
	public boolean pobierzDanePraconikaPoId(int idPracownika) throws SQLException{
		String nazwabazy="baza.db";
		Connection polaczenie=null;
		 java.sql.Statement statement = null;
		try {
	         Context ctx = new InitialContext();
	         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/baza");
	         polaczenie = ds.getConnection();
	         statement = polaczenie.createStatement();
	        
	   } catch (SQLException se) {
	      // se.toString());
	   } catch (NamingException ne) {
	      //   LOG.info(ne.toString());
	   }
	 try {
		statement.setQueryTimeout(30);
	} catch (SQLException e) {

		e.printStackTrace();
		return false;
	}
	     
	ResultSet wynik = null;
	try {
		wynik = statement.executeQuery("select * from pracownicy where idPracownika="+idPracownika);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		return false;
	}

	this.idPracownika= wynik.getInt("idPracownika");
	this.imiePracownika= wynik.getString("imiePracownika");
	this.nazwiskoPracownika= wynik.getString("nazwiskoPracownika");
	this.pesel= wynik.getString("pesel");
	this.dataZatrudnienia= wynik.getDate("dataZatrudnienia");
	this.stanowisko= wynik.getInt("stanowisko");
	this.haslo= wynik.getString("haslo");

	polaczenie.close();
	
		return true;
	}
	
	public boolean pobierzDanePraconikaPoNrPesel(int pesel) throws SQLException{
		String nazwabazy="baza.db";
		Connection polaczenie=null;
		 java.sql.Statement statement = null;
		try {
	         Context ctx = new InitialContext();
	         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/baza");
	         polaczenie = ds.getConnection();
	         statement = polaczenie.createStatement();
	        
	   } catch (SQLException se) {
	      // se.toString());
	   } catch (NamingException ne) {
	      //   LOG.info(ne.toString());
	   }
	 try {
		statement.setQueryTimeout(30);
	} catch (SQLException e) {

		e.printStackTrace();
		return false;
	}
	     
	ResultSet wynik = null;
	try {
		wynik = statement.executeQuery("select * from pracownicy where pesel="+pesel);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		return false;
	}

	this.idPracownika= wynik.getInt("idPracownika");
	this.imiePracownika= wynik.getString("imiePracownika");
	this.nazwiskoPracownika= wynik.getString("nazwiskoPracownika");
	this.pesel= wynik.getString("pesel");
	this.dataZatrudnienia= wynik.getDate("dataZatrudnienia");
	this.stanowisko= wynik.getInt("stanowisko");
	this.haslo= wynik.getString("haslo");

	polaczenie.close();
	
		return true;
	}
	
	public boolean pracownikDodajDoBazy() throws SQLException{
		String nazwabazy="baza.db";
		Connection polaczenie=null;
		 java.sql.Statement statement = null;
		try {
	         Context ctx = new InitialContext();
	         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/baza");
	         polaczenie = ds.getConnection();
	         statement = polaczenie.createStatement();
	        
	   } catch (SQLException se) {
	      // se.toString());
	   } catch (NamingException ne) {
	      //   LOG.info(ne.toString());
	   }
		
		statement.executeUpdate("INSERT INTO pracownicy VALUES ('"+this.idPracownika+"','"
							+this.imiePracownika+"','"+this.nazwiskoPracownika+"','"+ this.pesel
							+"','"+this.dataZatrudnienia +"','"+
							this.stanowisko+"','"+this.haslo+"' );");
		
		polaczenie.close();
		
		return true;
	}
	
	public boolean pracownikUsunZBazy() throws SQLException{
		String nazwabazy="baza.db";
		Connection polaczenie=null;
		 java.sql.Statement statement = null;
		try {
	         Context ctx = new InitialContext();
	         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/baza");
	         polaczenie = ds.getConnection();
	         statement = polaczenie.createStatement();
	        
	   } catch (SQLException se) {
	      // se.toString());
	   } catch (NamingException ne) {
	      //   LOG.info(ne.toString());
	   }
		statement.executeUpdate("DELETE FROM pracownicy where idPracownika="+this.idPracownika);

		polaczenie.close();
		
		return true;
	}
	
	public boolean pracownikZmienWBazie() throws SQLException{
		String nazwabazy="baza.db";
		Connection polaczenie=null;
		 java.sql.Statement statement = null;
		try {
	         Context ctx = new InitialContext();
	         DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/baza");
	         polaczenie = ds.getConnection();
	         statement = polaczenie.createStatement();
	        
	   } catch (SQLException se) {
	      // se.toString());
	   } catch (NamingException ne) {
	      //   LOG.info(ne.toString());
	   }
		statement.executeUpdate("update klienci set imiePracownika='"+this.imiePracownika +
				"',nazwiskoPracownika='"+ this.nazwiskoPracownika+
				"',pesel='"+this.pesel+
				"',dataZatrudnienia='"+this.dataZatrudnienia+
				"',stanowisko='"+this.stanowisko +
				"',haslo='"+this.haslo+
				"' where idPracownika='"+this.idPracownika+"'" );

		polaczenie.close();
		
		return true;
	}
	
	public String toString(){
		return "";
	}
	public int getIdPracownika() {
		return idPracownika;
	}
	public void setIdPracownika(int idPracownika) {
		this.idPracownika = idPracownika;
	}
	public String getImiePracownika() {
		return imiePracownika;
	}
	public void setImiePracownika(String imiePracownika) {
		this.imiePracownika = imiePracownika;
	}
	public String getNazwiskoPracownika() {
		return nazwiskoPracownika;
	}
	public void setNazwiskoPracownika(String nazwiskoPracownika) {
		this.nazwiskoPracownika = nazwiskoPracownika;
	}
	public String getPesel() {
		return pesel;
	}
	public void setPesel(String pesel) {
		this.pesel = pesel;
	}
	public Date getDataZatrudnienia() {
		return dataZatrudnienia;
	}
	public void setDataZatrudnienia(Date dataZatrudnienia) {
		this.dataZatrudnienia = dataZatrudnienia;
	}
	public int getStanowisko() {
		return stanowisko;
	}
	public void setStanowisko(int stanowisko) {
		this.stanowisko = stanowisko;
	}
	public String getHaslo() {
		return haslo;
	}
	public void setHaslo(String haslo) {
		this.haslo = haslo;
	}
	
}
